Functional Programming Helps Speed up MPICollective
نویسنده
چکیده
This paper shows how functional programming techniques have been successfully applied to relieve a performance bottleneck in an MPI collective communication operation. A functional speciication for the improved operation is given, and an eecient version implementable in an imperative language is derived and proved correct. Experimental results on an IBM SP2 distributed{memory machine connrm the eecacy of the proposed solution. The Message{Passing Interface MPI94, SOHL + 96] is designed to be a complete deenition of the message{passing programming model. MPI has over 120 diierent operations, ranging from primitive point-to-point communication functions to powerful collective operations. It aims to ensure portability of software without introducing a substantial performance penalty, and has been eeciently implemented on a range of hardware architectures. Parallel functional language implementations can beneet from using MPI as an oo-the-shelf building block. The powerful collective operations in MPI ooer a way of achieving good and portable performance. Furthermore, the MPI specii-cation has features which are well suited to functional languages. In particular, MPI derived data types exploit the potential capability of hardware to communicate non-contiguous data (e.g. heap cells) in a single message directly, without the need for memory transfer. MPI has built-in support for writing libraries, it is thread-safe by design, and caters for heterogeneous networks. Apart from vendor{supplied MPI libraries for speciic platforms, a number of widely supported`generic' implementations exist, most notably MPICH MPI], the Portable MPI Model Implementation by the Argonne National Laboratory and Mississippi State University, and LAM BDV94] of the Ohio Supercom-puter Center. Such generic libraries may reasonably be expected to underperform machine{speciic implementations. As evidence of the performance superiority of a specialised library consider Figure 1. It depicts the wallclock times for Integer Sort (IS) from the NAS Par
منابع مشابه
Concurrent Validity of Functional Gait Assessment, Timed Up and Go, and Gait Speed Tests in the Persian Community-Dwelling Elderly
Objectives: The purpose of this study was to evaluate the concurrent validity of the Farsi version of Functional Gait Assessment (FGA), Timed Up & Go (TUG), and Gait Speed tests in Persian communitydwelling older adults. Methods: Subjects were 100 males in falling or no falling history group (50 subjects in each group). Subjects were community-dwelling adults aged 60-90 years who were living...
متن کاملEffect of Rocker Bar Ankle Foot Orthosis on Functional Mobility in Post-Stroke Hemiplegic Patients: Timed Up and Go and Gait Speed Assessments
Objectives: Ankle Foot Orthoses (AFOs) are widely utilized to improve walking ability in hemiplegic patients. The present study aimed to evaluate the effect of Rocker bar Ankle Foot Orthosis (RAFO) on functional mobility in post-stroke hemiplegic patients. Methods: Fifteen hemiplegic patients (men and women) who were at least 6-months poststroke and able to walk without an assis...
متن کاملCodon Optimization using Map Reduce
Codon Optimization helps increasing immuno-stimulatory nucleotide motifs or decreasing immunesuppresive motifs in DNA expression vectors. This enhances the efficiency of DNA vaccinations. In this paper, we investigate the existing Pattern Matching algorithm for Codon Optimization and try to rewrite the algorithm in MapReduce programming model for execution speed-up and faster computation. Keywo...
متن کاملComposition of Functional Petri Nets
Functional Petri nets and subnets are introduced and studied for the purpose of speed-up of Petri nets analysis with algebraic methods. The authors show that any functional subnet may be generated by a composition of minimal functional subnets. They propose two ways to decompose a Petri net: via logical equations solution and with an ad-hoc algorithm, whose complexity is polynomial. Then proper...
متن کاملFunctional Programs on Clusters?
The implemented Clean-CORBA and Haskell-CORBA interfaces open a way for developing parallel and distributed applications on clusters consisting of components written in functional programming languages, like Clean and Haskell. We focus on a specific application of this tool in this paper. We design and implement an abstract communication layer based on CORBA server objects. Using this layer we ...
متن کامل